package com.lxy.mytest;

import java.io.*;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

/**
 * 将读取的文件放入ArrayList中，对其进行操作
 * @author 雷晓艳
 */

public class Operation {
	
	List<Person> person=new ArrayList<Person>();
	
	/**
	 * 从电脑读取文件
	 * @return 返回构造的Person类
	 * @throws IOException  读取出错抛出异常
	 */
	public List<Person> Read() throws IOException{     //读取文件

		try {
			InputStreamReader isr = new InputStreamReader(new FileInputStream("a.txt"), "GBK");
			BufferedReader bf = new BufferedReader(isr);
			String str=null;
			while((str=bf.readLine())!=null){
				String[] s=str.split("\\s+");
				Person p=new Person(s[0],s[1],s[2],s[3]);
				person.add(p);	
			}
		} catch (FileNotFoundException e) {
			// TODO Auto-generated catch block

			e.printStackTrace();
		}
		return person;
	}
	
	/**
	 * 显示读取的文件
	 */
	public void Show(){
		for(int i=0;i<person.size();i++)
			System.out.println(person.get(i).toString());
			 
	}
	
	/**
	 * 按照姓名查找通讯录
	 * @param name 输入姓名
	 * @return  返回查找信息
	 */
	public String NameSearch(String name){        //姓名查找

		int flag=0;int i=0;
		for(i=0;i<person.size();i++){
			if(person.get(i).getName().equals(name)){
				flag=i;
				break;
			}
		}
		if(flag==0)
			return "没有找到此信息！";
		else
			return person.get(i).toString(); 
	}
	/**
	 * 按照电话查找通讯录
	 * @param tel 输入电话
	 * @return  返回查找信息
	 */
	public String TelSearch(String tel){          //电话查找

		int flag=0;int i=0;
		for(i=0;i<person.size();i++){
			if(person.get(i).getTel().equals(tel)){
				flag=1;
				break;
			}
		}
		if(flag==0)
			return "没有找到此信息！";
		else
			return person.get(i).toString();
	}
	
	/**
	 * 在通讯录中增加一条信息
	 * @param name 输入姓名
	 * @param ads  输入职位
	 * @param tel  输入电话
	 */
	public void Add(String name,String ads,String tel){ //增加信息

		int flag=0;
		for(int i=0;i<person.size();i++){
			if(person.get(i).getTel().equals(tel))
				flag=1;
		}
		
		if(flag==0){
			//String No=String.valueOf(person.size()+1);
			int s=Integer.parseInt(person.get(person.size()-1).n);
			s++;
			Person p=new Person(String.valueOf(s),name,ads,tel);
			person.add(p);
			System.out.println("添加成功！");
		}
		else
			System.out.println("该电话已存在！");
		
	}
	
	/**
	 * 修改通讯录中的某条信息
	 * @param no  输入信息序号
	 * @param name 输入姓名
	 * @param ads  输入职位
	 * @param tel  输入电话
	 */
	public void Update(String no,String name,String ads,String tel){       //根据序号修改信息
		Person p=new Person(); 
			for(int i=0;i<person.size();i++){
				if(person.get(i).getN().equals(no)){//修改姓名

					p=new Person(person.get(i).getN(),name,ads,tel);
					person.set(i, p);
				}
			}
		}
	
	/** 
	 * 根据序号删除某一条信息
	 * @param No 输入信息序号
	 */
	public void Delete(String No){       //根据序号删除
		int flag=0;
		for(int i=0;i<person.size();i++){
			if(person.get(i).getN().equals(No)){
				person.remove(i);
				flag=1;
			}
		}
			if(flag==0)
				System.out.println("删除出错");
	}
	
	  /**
	   * 保存操作后的通讯录
	   * @throws IOException  保存出错抛出异常
	   */
	public void writeFunction() throws IOException{        //保存

		   File f=new File("E:\\桌面\\作业\\a.txt");
	        BufferedWriter bw=new BufferedWriter(new FileWriter(f));
	        for(int i=0;i<person.size();i++){
	            bw.write(person.get(i).getN()+" "+person.get(i).getName()+" "+person.get(i).getAds()+" "+person.get(i).getTel());
	            bw.newLine();
	        }
	        bw.close();
	    
	    }

}